Typical programs operating on computer systems or integrated circuit chips sometimes use computer system resources in inefficient ways, for example, with respect to power and performance. In general, microprocessors in computer systems are designed to provide good average performance over a variety of workloads imposed on them by computer programs. As the program executes it passes through different phases of operation. Hardware resource requirements can differ depending on the phase of the program. If the hardware resources are not large enough then performance can suffer, and if the hardware resources are too large then power is wasted, for example. Performance, power consumption, or both, can be optimized as the program is running, if program phase changes can be detected and dynamic hardware reconfiguration can be invoked in response to phase changes. Although several examples of dynamically configurable hardware are known to address these issues, there is a need for further improvement in this area. Described below are various embodiments of the inventive subject matter that may, among other things, improve management of configurable hardware.